﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Steve.UI.Administration.DataAnnotations;
using Steve.UI.Administration.Resources;

namespace Steve.UI.Administration.Models
{
    public abstract class NewRevisedObjectModel
    {
        //[Category("Audit")]
        //[DisplayName("Comment")]
        [Required]
        //[Description("This comment describes the change you are making to this record.")]
        [DataType("RevisionComment")]
        [Show(false, true)]
        [Display(ResourceType = typeof(CommonResources), Name = "Revision_NextRevisionComment_Name", Description = "Revision_NextRevisionComment_Description", GroupName = "Revision_GroupName")]
        public string NextRevisionComment { get; set; }
    }

    public abstract class ExistingRevisedObjectModel
    {
        //[DisplayName("Last Comment")]
        //[Category("Audit")]
        [ReadOnly(true)]
        [Display(ResourceType = typeof(CommonResources), Name = "Revision_RevisionComment_Name", Description = "Revision_RevisionComment_Description", GroupName = "Revision_GroupName")]
        public string RevisionComment { get; set; }
        
        //[DisplayName("Last Modified")]
        //[Category("Audit")]
        [ReadOnly(true)]
        [Display(ResourceType = typeof(CommonResources), Name = "Revision_RevisionDate_Name", Description = "Revision_RevisionDate_Description", GroupName = "Revision_GroupName")]
        public DateTime RevisionDate { get; set; }

        //[Category("Audit")]
        [ReadOnly(true)]
        [DataType("MembershipUser")]
        [Display(ResourceType = typeof(CommonResources), Name = "Revision_RevisionMembershipId_Name", Description = "Revision_RevisionMembershipId_Description", GroupName = "Revision_GroupName")]
        public Guid? RevisionMembershipId { get; set; }

        //[Category("Audit")]
        [ReadOnly(true)]
        [Display(ResourceType = typeof(CommonResources), Name = "Revision_RevisionNumber_Name", Description = "Revision_RevisionNumber_Description", GroupName = "Revision_GroupName")]
        public int RevisionNumber { get; set; }

        //[Category("Audit")]
        //[DisplayName("Comment")]
        [Required]
        //[Description("This comment describes the change you are making to this record.")]
        [DataType("RevisionComment")]
        [Show(false, true)]
        [Display(ResourceType = typeof(CommonResources), Name = "Revision_NextRevisionComment_Name", Description = "Revision_NextRevisionComment_Description", GroupName = "Revision_GroupName")]
        public string NextRevisionComment { get; set; }
    }
}
